定期ミートアップ 第37回
最近やったこと
method tyargs推論
let の導入
vim対応
windows対応
メソッドの型パラメータの推論
code:sk
1,2,3.map<String>{|i| i + 1} を
と書けるようになった
未知の型を'1, '2, ...(Unknown)とおく
「こことここは等しい(Equation)」を集める
上の例なら、Array<Int>.map<'1>(f: Fn1<Int, '1>) -> Array<'1> なので、'1はブロックの返り値の型と等しいことがわかる
解く(unify)
letの導入
a = 1 で変数宣言できていたのを、let a = 1のようにletを必須にした
if let (例:if let Some(i) = ans) を入れたいので、一貫性のため
ifもスコープを作るよう修正する
code:rb
if x == 1
a = 0
end
# Rubyだとこれが通る (x!=1のとき、aはnilになる)
vim対応
vim-rubyのソースをコピーして修正
自動テストがある
windows対応
Windowsマシンで仕事するようになったのでやってみた
WSL2ならもちろん動くが、ときどき暴走する…(WS2が)
RustもLLVMもWindowsに対応している